package Initials;



public class InitGenCo {

int I;
            private double[][] GenCoData;
            private double[] GenCoMoney;
            private double[][] LearningData;
            private int[] GenCoAtNode;  
            
            // Learning and action domain parameters
            private double Default_Cooling;
            private double Default_Experimentation;
            private double Default_InitPropensity;
            private int Default_M1;
            private int Default_M2;
            private int Default_M3;
            private double Default_RI_MAX_Lower;
            private double Default_RI_MAX_Upper;
            private double Default_RI_MIN_C;
            private double Default_Recency;
            private double Default_SlopeStart;
            private int Default_iRewardSelection;
            

  public InitGenCo(){
	  
I=5;
	    Default_Cooling=1000.0;
	    Default_Experimentation=0.96;
	    Default_InitPropensity=6000.0;
	    Default_Recency=0.04;
	    
	    Default_M1=10;
	    Default_M2=10;
	    Default_M3=1;
	    Default_RI_MAX_Lower=0.75;
	    Default_RI_MAX_Upper=0.75;
	    Default_RI_MIN_C=1.0;
	    Default_SlopeStart=0.001;
	    Default_iRewardSelection=1;
	  
		 
	  GenCoData = new double[I][8];
		
	  
	  for (int i=0; i<I; i++){
				
		  if (i == 0){
			GenCoData[i][0]=i+1;
			GenCoData[i][1]=1;
			//genData[i][2]=i+1>iNodeNumber?((i+1)/iNodeNumber):(i+1);
			GenCoData[i][2]=0.0;
			GenCoData[i][3]=14.0;
			GenCoData[i][4]=0.005;
			GenCoData[i][5]=0.0;
			GenCoData[i][6]=110.0;
			GenCoData[i][7]=10000.0;
		  	}
		  
		  if (i == 1){
				GenCoData[i][0]=i+1;
				GenCoData[i][1]=1;
				//genData[i][2]=i+1>iNodeNumber?((i+1)/iNodeNumber):(i+1);
				GenCoData[i][2]=0.0;
				GenCoData[i][3]=15.0;
				GenCoData[i][4]=0.006;
				GenCoData[i][5]=0.0;
				GenCoData[i][6]=100.0;
				GenCoData[i][7]=10000.0;
			  	}
		  
		  if (i == 2){
				GenCoData[i][0]=i+1;
				GenCoData[i][1]=3;
				//genData[i][2]=i+1>iNodeNumber?((i+1)/iNodeNumber):(i+1);
				GenCoData[i][2]=0.0;
				GenCoData[i][3]=25.0;
				GenCoData[i][4]=0.01;
				GenCoData[i][5]=0.0;
				GenCoData[i][6]=520.0;
				GenCoData[i][7]=10000.0;
			  	}
		  
		  
		  if (i == 3){
				GenCoData[i][0]=i+1;
				GenCoData[i][1]=4;
				//genData[i][2]=i+1>iNodeNumber?((i+1)/iNodeNumber):(i+1);
				GenCoData[i][2]=0.0;
				GenCoData[i][3]=30.0;
				GenCoData[i][4]=0.012;
				GenCoData[i][5]=0.0;
				GenCoData[i][6]=200.0;
				GenCoData[i][7]=10000.0;
			  	}
		 
		  if (i == 4){
				GenCoData[i][0]=i+1;
				GenCoData[i][1]=5;
				//genData[i][2]=i+1>iNodeNumber?((i+1)/iNodeNumber):(i+1);
				GenCoData[i][2]=0.0;
				GenCoData[i][3]=10.0;
				GenCoData[i][4]=0.07;
				GenCoData[i][5]=0.0;
				GenCoData[i][6]=600.0;
				GenCoData[i][7]=10000.0;
			  	}
		  
	  }
	  LearningData = new double[I][12];
	  
	  for (int i=0; i<I; i++){
			
		  LearningData[i][0]=Default_InitPropensity;
		  LearningData[i][1]=Default_Cooling;
		  LearningData[i][2]=Default_Recency;
		  LearningData[i][3]=Default_Experimentation;
		  LearningData[i][4]=Default_M1;
		  LearningData[i][5]=Default_M2;
		  LearningData[i][6]=Default_M3;
		  LearningData[i][7]=Default_RI_MAX_Lower;
		  LearningData[i][8]=Default_RI_MAX_Upper;
		  LearningData[i][9]=Default_RI_MIN_C;
		  LearningData[i][10]=Default_SlopeStart;
		  LearningData[i][11]=Default_iRewardSelection;
	
	  }
	  	GenCoAtNode = new int[I];	
	  		GenCoAtNode[0] = 1 ;
	  		GenCoAtNode[1] = 1 ;
	  		GenCoAtNode[2] = 3 ;
	  		GenCoAtNode[3] = 4 ;
	  		GenCoAtNode[4] = 5 ;
	  
	  
  }	

		public double[][] getGenCoData(){		
			return GenCoData;
		}
		
		public double[][] getLearningData() {		
			return LearningData;
		}

		public int[] getGenCoAtNode() {		
			return GenCoAtNode;
		}

		public double[] getGenCoMoney() {
			GenCoMoney = new double[I];
			for (int i=0;i<I;i++){
				GenCoMoney[i] = GenCoData[i][7];
			}
			return GenCoMoney;
		}
			
		public int getNGenCo(){		
			return I;
		}
}

